home *** CD-ROM | disk | FTP | other *** search
/ Software 2000 / Software 2000 Volume 1 (Disc 1 of 2).iso / utilities / u620.dms / in.adf / Tips&Tricks / WorkbenchStart / WBstart.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-04-30  |  1.4 KB  |  62 lines

  1.  
  2.  
  3. #include <dos/dos.h>
  4. #include <workbench/startup.h>
  5. #include <workbench/workbench.h>
  6. #include <workbench/icon.h>
  7. #include <clib/exec_protos.h>
  8. #include <clib/icon_protos.h>
  9.  
  10. #define VERSION 33
  11. #define PRGTEXT "\nProgram: "
  12. #define NAMNTEXT "\nNamn: "
  13. #define ICONTEXT "\nIkon: "
  14. #define SHELLTEXT "\nStarta ifrÃ¥n Workbench!\n"
  15.  
  16. extern struct WBStartup *WBenchMsg;
  17.  
  18. struct Library *IconBase;
  19.  
  20. int main(int argc, char **argv)
  21. {
  22.  struct WBArg      *wbarg;
  23.  struct DiskObject *dobj;
  24.  UBYTE             **tools,*textp;
  25.  BPTR           fh;
  26.  LONG           argnum;
  27.  
  28.  if(!argc) {
  29.     if(!(fh = Open("CON:10/10/400/100/WBtest",MODE_NEWFILE)))
  30.         exit(10);
  31.         IconBase = OpenLibrary((UBYTE *)"icon.library",VERSION);
  32.     if(!IconBase) {
  33.         Close(fh);
  34.         exit(10);
  35.     }
  36.         wbarg = WBenchMsg->sm_ArgList;
  37.     argnum = WBenchMsg->sm_NumArgs;
  38.  
  39.     Write(fh,PRGTEXT,strlen(PRGTEXT));
  40.     Write(fh,wbarg->wa_Name,strlen(wbarg->wa_Name));
  41.  
  42.         dobj = GetDiskObject((UBYTE *)wbarg->wa_Name);
  43.         tools = (UBYTE **)dobj->do_ToolTypes;
  44.         if(textp = FindToolType(tools,(UBYTE *)"NAMN")) {
  45.         Write(fh,NAMNTEXT,strlen(NAMNTEXT));
  46.         Write(fh,textp,strlen(textp));
  47.     }
  48.     FreeDiskObject(dobj);
  49.  
  50.     for(wbarg++; --argnum; wbarg++) {
  51.         Write(fh,ICONTEXT,strlen(ICONTEXT));
  52.         Write(fh,wbarg->wa_Name,strlen(wbarg->wa_Name));
  53.     }
  54.  
  55.     CloseLibrary(IconBase);
  56.     Delay(200);
  57.     Close(fh);
  58.  }
  59.  else
  60.     Write(Output(),SHELLTEXT,strlen(SHELLTEXT));
  61. }
  62.